<?php
session_start();
include('include/config.php');
include('include/fonctions.php');
$messageErrMail = 'Page : ajout-eleve.php<br />';
$msgErr = $nom = $prenom = $civ = $niveau = $dateSql = $idEleve = '';
actualiser_session();
$connection = connexionBdd();

//on check pour savoir si on supprime un devoir
if ((isset($_GET['id'])) && (intval($_GET['id'] > 0))) {
    $idDevoir = secure($_GET['id']);
    //on vient sur cette page pour supprimer
    if (isset($_GET['supp'])) {
        $query = 'DELETE FROM `devoir` WHERE `id_devoir` =' . $idDevoir;
        try {
            $connection->exec($query);
            $msgErr = '<div class="success">La suppression du dévoir et de ses notes sont effectives.</div>';
        } catch (Exception $e) {
            $msgErr = '<div class="error">Une erreur est survenue lors de la suppression du devoir. Merci de réitérer votre opération.</div>';
            $messageErrMail .= 'Erreur suppression devoir prof_id : ' . $prof_id . ' et devoir : ' . $idDevoir;
            $messageErrMail .= '<pre>' . $GLOBALS . '</pre>';
            error_log($messageErrMail, 1, $mailAdmin, $enteteErrLog);
        }
    }
}

//on récupère le nombres de période de l'enseignant
$req = $connection->prepare('SELECT `prof_period` FROM `prof` WHERE `prof_id` =:id LIMIT 0 , 1');
$req->bindParam(':id', $_SESSION['prof_id'], PDO::PARAM_INT);
$req->execute();
$donnees = $req->fetch(PDO::FETCH_ASSOC);
$req->closeCursor();
$trimestre = $donnees['prof_period'];

//on récupère le nombres de niveau, nom et id de l'enseignant
$count = 0;
$req = $connection->prepare('SELECT DISTINCT `id_niveau`,`nom_niveau` FROM `eleve` e NATURAL JOIN `niveau` WHERE `id_prof`=:id ORDER BY `id_niveau`');
$req->bindParam(':id', $_SESSION['prof_id'], PDO::PARAM_INT);
$req->execute();
$niveau = $req->fetchAll(PDO::FETCH_ASSOC);
$req->closeCursor();
//on cherche à savoir si la personne est venue ici en choisisant un niveau
if (isset($_GET['niveau'])) {
    $idNiveau = secure($_GET['niveau']);
}  else {
   $idNiveau = $niveau[0]['id_niveau'];
}
//Execution dans la boucle plus bas
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
    <head>
        <title>Gestion de ma classe</title>
        <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
        <meta name="description" content="Permet la gestion complète de votre classe, avec l'ajout, la modification et la suppresison de vos élèves." />
        <meta name="keywords" content="gestion eleve" />
        <meta name="author" content="Wicenty web" />
        <link rel="icon" href="images/favicon.ico" type="image/x-icon" />
        <link rel="shortcut icon" href="images/favicon.ico" type="image/x-icon" />
        <link rel="stylesheet" href="css/style.css" />
        <link rel="stylesheet" href="css/menu.css" />
        <link rel="stylesheet" href="css/form.css" />
        <link rel="stylesheet" href="css/onglet.css" />
        <link rel="stylesheet" href="css/tableau.css" />
        <link href="//netdna.bootstrapcdn.com/bootstrap/3.0.0/css/bootstrap.min.css" rel="stylesheet" />
        <script src="http://code.jquery.com/jquery-2.0.3.min.js"></script>
        <script src="//netdna.bootstrapcdn.com/bootstrap/3.0.0/js/bootstrap.min.js"></script>
        <link href="//cdnjs.cloudflare.com/ajax/libs/x-editable/1.5.0/bootstrap3-editable/css/bootstrap-editable.css" rel="stylesheet"/>
        <script src="//cdnjs.cloudflare.com/ajax/libs/x-editable/1.5.0/bootstrap3-editable/js/bootstrap-editable.min.js"></script>
        <script>
            function delete_confirm(id) {
                if (confirm("Voulez vous vraiment supprimer ce devoir ainsi que toutes ses notes ?"))
                {
                    location.href = 'grille-note.php?supp=1&id=' + id;
                }
                return false;
            }

            $(document).ready(function() {
                //  When user clicks on tab, this code will be executed
                $("#tabs li").click(function() {
                    //  First remove class "active" from currently active tab
                    $("#tabs li").removeClass('active');
                    //  Now add class "active" to the selected/clicked tab
                    $(this).addClass("active");
                    //  Hide all tab content
                    $(".tab_content").hide();
                    //  Here we get the href value of the selected tab
                    var selected_tab = $(this).find("a").attr("href");
                    //  Show the selected tab content
                    $(selected_tab).fadeIn();
                    //  At the end, we add return false so that the click on the link is not executed
                    return false;
                });

                $('.editable').editable({
                    type: 'text',
                    url: 'include/ajaxSaveNote.php',
                    title: 'Saisir une note',
                    emptytext: 'Abs',
                    showbuttons: 'bottom'
                });
            });

            $.fn.editable.defaults.mode = 'inline';
        </script>

    </head>
    <body>
        <!--==============================header=================================-->
        <?php
        require_once('include/menu.php');
        ?>

        <!--==============================content================================-->
        <div class="bg1">
            <div class="bg">
                <section id="content">
                    <div class="container_12">
                        <article class="grid_12">
                            <h1>Grille des notes</h1>
                            <p>La grille de note va vous permettre de visualiser l'enseble des notes saisie sur le site.</p>
                            <p>Si vous souhaitez modifier une note, ou un insérer une, il vous suffit de cliquer sur la case en question. Vous aurez alors la possiblibilité de modifier la note. Pour valider la saisie, vous pouvez valider par la appuie sur la touche "Entrée" ou en cliquant simplemnt ailleur sur la page.</p>
                        </article>
                        <article class="grid_12">
                            <div class="border-bot"></div>
                        </article>
                        <article class="grid_12">
                            <br />
                            <?php

                            // on cherche à savoir si l'enseignant à une multiclasse
                            if (count($niveau) > 1) {
                                //On affiche un form avec radio bouton pour afficher uniquement les classes choisies
                                echo '<p>Choississez la classe à afficher : ';
                                foreach ($niveau as $key => $value) {
                                    //echo '<label><input type="radio" name="liste" value="tabs_wrapperNote' . $value['id_niveau'] . '" />' . $value['nom_niveau'] . '</label> ';
                                    if ($idNiveau==$value['id_niveau']){
                                        $classBouton='buttonCTAactive';
                                    }else{
                                        $classBouton='buttonCTA';
                                    }
                                    echo '<a class="'.$classBouton.'" href="grille-note.php?niveau=' . $value['id_niveau'] . '">' . $value['nom_niveau'] . '</a> ';
                                }
                                echo '</p>';
                            }

                            $req = $connection->prepare('SELECT `id_eleve`,`nom_eleve`,`prenom_eleve` FROM `eleve` WHERE `id_prof`=:id AND `id_niveau`=:idNiv ORDER BY `nom_eleve`,`prenom_eleve`');
                            ?>
                            <div id="tabs_wrapperNote" class="grille">
                                <div id="tabs_container">
                                    <ul id="tabs">
                                        <?php
                                        //on affiche les onglets des périodes
                                        for ($i = 1; $i <= $trimestre; $i++) {
                                            if ($i == 1)
                                                echo '<li class="active"><a href="#tab' . $i . '">Période ' . $i . '</a></li>';
                                            else
                                                echo '<li><a href="#tab' . $i . '">Période ' . $i . '</a></li>';
                                        }
                                        ?>
                                    </ul>
                                </div>

                                <div id="tabs_content_containerNote">
                                    <input type="hidden" id="hidden" value="" />
                                    <?php
                                    //on récupère la liste des élèves
                                    $req->bindParam(':id', $_SESSION['prof_id'], PDO::PARAM_INT);
                                    $req->bindParam(':idNiv', $idNiveau, PDO::PARAM_INT);
                                    $req->execute();
                                    $classe = $req->fetchAll(PDO::FETCH_ASSOC);

                                    for ($i = 1; $i <= $trimestre; $i++) {
                                        //on récupère la liste et le  nom des devoirs pour un prof et un trimestre donné
                                        $reqDevoir = $connection->prepare('SELECT DISTINCT `id_devoir`, `nom_devoir`
                                                FROM  `note`
                                                NATURAL JOIN  `devoir`
                                                NATURAL JOIN  `eleve`
                                                WHERE  `trimestre_note` =:periode
                                                AND  `id_prof` =:id
                                                AND  `id_niveau` =:id_niveau
                                                ORDER BY `id_matiere`,`date_note`');
                                        $reqDevoir->bindParam(':id', $_SESSION['prof_id'], PDO::PARAM_INT);
                                        $reqDevoir->bindParam(':periode', $i, PDO::PARAM_INT);
                                        $reqDevoir->bindParam(':id_niveau', $idNiveau, PDO::PARAM_INT);
                                        $reqDevoir->execute();
                                        $nomDevoir = $reqDevoir->fetchAll(PDO::FETCH_ASSOC);

                                        //On va calculer le nombre de caractère d'un nom de devoir pour afficher tout ceci sur une ligne de même taille
                                        $longeurNomDevoir = 0;
                                        foreach ($nomDevoir as $value) {
                                            $tmp = strlen($value['nom_devoir']);
                                            if ($tmp > $longeurNomDevoir)
                                                $longeurNomDevoir = $tmp;
                                        }
                                        if ($longeurNomDevoir>15){
                                             $longeurNomDevoir = $longeurNomDevoir * 5.75;
                                        }   else {
                                             $longeurNomDevoir = 40;
                                        }


                                        //gestion du tab active
                                        if ($i == 1)
                                            echo '<div id="tab' . $i . '" class="tab_content" style="display: block;">';
                                        else
                                            echo '<div id="tab' . $i . '" class="tab_content">';

                                        /*
                                         * On va gérer le cas ou pour une période donnée
                                         * il n'y a pas de note
                                         */

                                        if (count($nomDevoir) < 1) {
                                            echo '<div class="info">Aucune note pour cette période.</div>';
                                        } else {
                                            /*                                             * *********************************************************
                                             *  On commence par écrire la ligne avec le nom des élèves
                                             * ********************************************************* */
                                            echo '<table id="ver-zebra"><colgroup><col class="vzebra-odd" />';
                                            $pyj = false;
                                            foreach ($classe as $key => $value) {
                                                if ($pyj)
                                                    echo '<col class="vzebra-odd" />';
                                                else
                                                    echo '<col class="vzebra-even" />';
                                                $pyj = !$pyj;
                                            }
                                            echo '</colgroup><thead><tr><th scope="col" id="vzebra-A-Devois"><img src="images/spacer.gif" width="' . $longeurNomDevoir . '" height="1"/></th>';
                                            $pyj = false;
                                            $limitePrenom = 5;
                                            foreach ($classe as $key => $value) {
                                                if (strlen($value['prenom_eleve']) > $limitePrenom) {
                                                    $titre = substr($value['prenom_eleve'], 0, $limitePrenom) . '. ' . $value['nom_eleve'][0];
                                                } else {
                                                    $titre = $value['prenom_eleve'] . ' ' . $value['nom_eleve'][0];
                                                }
                                                //$titre = $value['prenom_eleve'] . ' ' . $value['nom_eleve'];

                                                if ($pyj)
                                                    $vert = 'vzebra-A-' . $value['prenom_eleve'] . $value['nom_eleve'];
                                                else
                                                    $vert = 'vzebra-B-' . $value['prenom_eleve'] . $value['nom_eleve'];
                                                $pyj = !$pyj;
                                                echo '<th scope="col" id="' . $vert . '"><img src="images/spacer.gif" width="60" height="1"/><span class="nomEleve">' . $titre . '</span></th>';
                                            }
                                            echo '</tr></thead><tbody>';
//                                            echo '<pre>Bonjour, je suis actuellement en train de chercher pourquoi les notes ne s\'affichent pas correctement. Cependant elles sont bien enregistrées.</pre>';

//                                            echo '<pre>';
//                                            print_r($classe);
//                                            echo '</pre>';
                                            /* * *********************************************************
                                             *  On va maintenant gérer les lignes par devoir
                                             * ********************************************************* *///
                                            foreach ($nomDevoir as $key => $valueDevoir) {
                                                //on affiche le nom du devoir
                                                echo '<tr><td class="devoir"><img src="css/ico/delete.png" width="16" height="16" class="img-indent3" onclick="delete_confirm(' . $valueDevoir['id_devoir'] . ')"/>' . stripslashes($valueDevoir['nom_devoir']) . '</td>';

                                                /*  *********************************************************
                                                 * Pour chaque devoir on récupère les notes des élèves
                                                 * ********************************************************* */
                                                $reqNote = $connection->prepare('SELECT `id_note`, `id_eleve`,`id_matiere`, `numerique_note`
                                                                                    FROM  `note`
                                                                                    NATURAL JOIN  `eleve`
                                                                                    WHERE  `trimestre_note` =:periode
                                                                                    AND `id_devoir`=:id_devoir
                                                                                    AND `id_niveau`=:id_niveau
                                                                                    ORDER BY  `id_eleve`');
                                                $reqNote->bindParam(':periode', $i, PDO::PARAM_INT);
                                                $reqNote->bindParam(':id_devoir', $valueDevoir['id_devoir'], PDO::PARAM_STR);
                                                $reqNote->bindParam(':id_niveau', $idNiveau, PDO::PARAM_STR);
                                                $reqNote->execute();
                                                $note = $reqNote->fetchAll(PDO::FETCH_ASSOC);
//                                                echo '<pre>';
//                                                print_r($note);
//                                                echo '</pre>';
                                                $j = 0;
                                                $idmatiere = $note[$j]['id_matiere'];

                                                foreach ($classe as $key => $valueClasse) {
                                                    /*
                                                     * on va vérifier que le count du tableau des notes
                                                     * est cohérant avec le nbr d'eleve dans la classe.
                                                     */
//                                                    test  echo '<pre>if idDevoir['.$valueDevoir['id_devoir'].'] : $j='.$j.' count(note)='.count($note).'<br/>';
                                                    if ($j < count($note)) {
                                                        //Dans le cas ou les notes que l'on récupère correcpond à l'id de la colone du tab général
//                                                        test echo '&nbsp;&nbsp;&nbsp;If idEleve['.$valueClasse['id_eleve'].']==note[j][ideleve]'.$note[$j]['id_eleve'].'donc : ';
                                                        if ($valueClasse['id_eleve'] == $note[$j]['id_eleve']) {
//                                                            test echo $note[$j]['numerique_note'];
                                                            echo '<td><a href="#" data-pk="' . $note[$j]['id_note'] . '" class="editable editable-click">' . $note[$j++]['numerique_note'] . '</a></td>';
                                                        } else {
//                                                            test echo 'Abs';
//                                                                echo '<td><span class="edit" id="' . $valueClasse['id_eleve'] . '¤' . $_SESSION['prof_id'] . '¤' . $idmatiere . '¤' . $valueDevoir['id_devoir'] . '¤' . $i . '" data="Abs">Abs</span></td>';
                                                            echo '<td><a href="#" data-pk="' . $valueClasse['id_eleve'] . '¤' . $_SESSION['prof_id'] . '¤' . $idmatiere . '¤' . $valueDevoir['id_devoir'] . '¤' . $i . '" class="editable editable-click">Abs</a></td>';
                                                        }
                                                    } else {
                                                        //Dans ce cas c'est qu'on a plus de note en stock mais qu'il reste des note à afficher.
                                                        echo '<td><a href="#" data-pk="' . $valueClasse['id_eleve'] . '¤' . $_SESSION['prof_id'] . '¤' . $idmatiere . '¤' . $valueDevoir['id_devoir'] . '¤' . $i . '" class="editable editable-click">Abs</a></td>';
                                                    }
//                                                    test echo '</pre>';
                                                }
                                                echo '</tr>';
                                            }
                                            echo '</tbody></table>';
                                        }
                                        echo '</div>';
                                    }
                                    ?>
                                </div>
                            </div>
                            <?php
                            $req->closeCursor();
                            ?>
                        </article>
                    </div>
                </section>

                <!--==============================footer=================================-->
                <?php
//                echo '<pre>';
//                print_r($GLOBALS);
//                echo '</pre>';
                require_once 'include/footer.php';
                ?>
            </div>
        </div>
    </body>
</html>